﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Permutation
{
    class permutation
    {
        const int MAXN = 6;

        const int n = 5;
        public static char[] used = new char[MAXN];
        public static char[] mp = new char[MAXN];
     public static   char[] elements = { '1', '2', '3', '4','5'};
        public static void print()
        {
            for (int i = 1; i <= n; i++)
            {
                Console.Write(mp[i]);

            }
            Console.WriteLine();
        }

        public static void permute(int i)
        {
            if (i >= n+1)
            { 
                print(); return;
            }

            for (int k = 1; k < n+1; k++)
            {
                if (used[k] == '0')
                {
                    used[k] = '1';
                    mp[i] = elements[k-1];
                    permute(i + 1); /* if (ако има смисъл да продължава генерирането) {permute(i+1);} */
                    used[k] = '0';
                }
            }
        }

        static void Main(string[] args)
        {
            int i;
            for (i = 1; i < n+1; i++)
            {
                used[i] = '0';
            }
            permute(1);
        }
    }
}
